package com.gltc.util;

import java.io.UnsupportedEncodingException;
import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;

@SuppressWarnings("rawtypes")
public class PageUtils {
	
	/**
	 * 新分页, 添加bootstrap样式
	 * @param request
	 * @param total	总记录数
	 * @param page	当前页 (从1开始)
	 * @param size	每页数量
	 * @return
	 * @author YangJie
	 * @createTime 2015年2月4日 下午2:36:50
	 */
	public static String getPageIterator(HttpServletRequest request, int total, int page, int size){
		int pages = total % size ==0 ? total/size : total /size + 1;
		pages = pages == 0 ? 1 : pages;
		String url = request.getRequestURL().toString();
		StringBuilder queryString = new StringBuilder();
		Enumeration enumeration = request.getParameterNames();
		while (enumeration.hasMoreElements()) {
			String element = (String) enumeration.nextElement();
			if(element.indexOf("page") > -1) {
				continue;
			}
			try {
				queryString.append("&").append(element).append("=").append(java.net.URLEncoder.encode(request.getParameter(element),"UTF-8"));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		StringBuilder buf = new StringBuilder();
		buf.append("<h2 style='text-align:center;'>");
		buf.append("<a class='btn btn-info' style='margin:3px' href='").append(url).append("?page=").append(1).append(queryString).append("'>首页</a>");
		buf.append("<a class='btn btn-info' style='margin:3px' href='").append(url).append("?page=").append(page>1 ? page-1 : 1).append(queryString).append("'>上一页</a>");
		buf.append("<span style='margin:3px'>[").append(page).append("/").append(pages).append("]</span>");
		buf.append("<span style='margin:3px'>[总").append(total).append("条记录]</span>");
		buf.append("<a class='btn btn-info' style='margin:3px' href='").append(url).append("?page=").append(page<pages ? page+1 : pages).append(queryString).append("'>下一页</a>");
		buf.append("<a class='btn btn-info' style='margin:3px' href='").append(url).append("?page=").append(pages).append(queryString).append("'>尾页</a>");
		buf.append("<input type='text' style='width:36px;height:28px;text-align: center;border: 1px solid #ccc;' id='input_page' value='").append(page).append("'/>");
		buf.append("<a class='btn btn-info' style='margin:3px;' onclick=' var page=$(\"#input_page\").val(); var pages=").append(pages).append(";")
		  .append("page=(page) ? page : 1; page=(page<1) ? 1 : page; page=(page>pages) ? pages : page;").append("location.href=\"").append(url).append("?page=\"+page+\"").append(queryString).append("\"'>GO</a>");
		
		buf.append("</h2>");
		return buf.toString();
	}
	/**
	 * 异步刷新小记详情列表
	 * @param request
	 * @param total
	 * @param page
	 * @param size
	 * @return
	 */
	public static String getPageIteratorAjax(HttpServletRequest request, int total, int page, int size){
		int pages = total % size ==0 ? total/size : total /size + 1;
		pages = pages == 0 ? 1 : pages;
		page = page>pages ? pages : page;
		page = page<1 ? 1 : page;
		String url = request.getRequestURL().toString();
		StringBuilder queryString = new StringBuilder();
		Enumeration enumeration = request.getParameterNames();
		while (enumeration.hasMoreElements()) {
			String element = (String) enumeration.nextElement();
			if(element.indexOf("page") > -1) {
				continue;
			}
			try {
				queryString.append("&").append(element).append("=").append(java.net.URLEncoder.encode(request.getParameter(element),"UTF-8"));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		StringBuilder buf = new StringBuilder();
		buf.append("<h2 style='text-align:center;'>");
		buf.append("<a class='btn btn-info' style='margin:3px' onclick=\"$.get('").append(url).append("?page=").append(1).append(queryString).append("', function(data){$('#report_ajax_list').html(data)});\">").append("首页</a>");
		buf.append("<a class='btn btn-info' style='margin:3px' onclick=\"$.get('").append(url).append("?page=").append(page>1 ? page-1 : 1).append(queryString).append("', function(data){$('#report_ajax_list').html(data)});\">").append("上一页</a>");
		buf.append("<span style='margin:3px'>[").append(page==0?1:page).append("/").append(pages).append("]</span>");
		buf.append("<span style='margin:3px'>[总").append(total).append("条记录]</span>");
		buf.append("<a class='btn btn-info' style='margin:3px' onclick=\"$.get('").append(url).append("?page=").append(page<pages ? page+1 : pages).append(queryString).append("', function(data){$('#report_ajax_list').html(data)});\">").append("下一页</a>");
		buf.append("<a class='btn btn-info' style='margin:3px' onclick=\"$.get('").append(url).append("?page=").append(pages).append(queryString).append("', function(data){$('#report_ajax_list').html(data)});\">").append("尾页</a>");
		buf.append("<input type='text' id='input_page' style='width:36px;height:16px;text-align: center;border: 1px solid #ccc;' value='").append(page==0?1:page).append("'/>");
		buf.append("<a class='btn btn-info' style='margin:3px;' onclick=\" var page=$(\'#input_page\').val(); var pages=").append(pages).append(";")
				  .append("page=(page) ? page : 1; page=(page<1) ? 1 : page; page=(page>pages) ? pages : page;").append("$.get('").append(url).append("?page='+page+'").append(queryString).append("', function(data){$('#report_ajax_list').html(data)});\">").append("GO</a>");
		buf.append("</h2>");
		return buf.toString();
	}
	
	
}
